Audio and visual components related to compressed Motion Pictures Experts Group (MPEG) data must be properly synchronized for processing. The precise time to present uncompressed data is generally indeterminate relative to the time when the data is received in compressed form. Program clock references that are given during ‘stream time’ are transmitted in the adaptation field of audio or visual packets or auxiliary data at least ten times every second. A system may establish a reference of which time data should be given to an auxiliary decoder. A conventional system processes data from a data stream to synchronize to the program clock references. The system may then establish a presentation time for a particular data set according to the time the data set is received in reference to other received data sets. Using a stream time determined by the program clock references and the established presentation time, provided with the data set as a presentation time stamp (PTS), the data set is then passed to a decoding system.
A clock local to the decoding system, a system time clock (STC), is used to provide the reference time to compare to the PTS values. The STC is a counter, or clock reference, maintained by the receiving (decoding) system. By comparing the values of the PTS to the system time clock and rendering the data associated with a particular PTS when a match occurs, a decoding system may obtain synchronized presentation of audio and visual data. The STC must be properly synchronized to the clock of the encoding system to properly present the data. Program clock reference (PCR) values are occasionally provided within the transport stream. The STC can set itself to the PCR values to synchronize to the encoding system.
As discussed above, when a decoding system is receiving a data stream from an encoding system, the timing of the decoding system is derived from the encoding system. Known as a “push” model, the data stream is sent at a rate controlled by the encoding system and used by the decoding system to determine timing. Some decoding systems are integrated with a form of digital storage media, such as a hard disk, for storing and/or retrieving data streams. Known as a “pull” model, when a decoding system attempts to process a data stream stored in a digital storage media, the decoding system must dictate the bit-rate for retrieval. However, pull model implementations are usually not bit-accurate. Difficulties are encountered when scheduling digital storage media read requests through an operating system. For example file system delays and disk fragmentation issues lead to inaccurate data stream bit rates. MPEG-2 specifications do not specify a method of controlling bit-rate of transport stream data accessed from digital storage media. From the discussion above, it is apparent that a system for maintaining an accurate data stream bit-rate during digital storage media access is needed, according to one embodiment of the present invention.